package 五排序;

import javax.xml.transform.Source;
import java.util.Arrays;

/**
 * @Author XuZhuHong
 * @CreateTime 2021/9/15 19:24
 * 选择排序
 */
public class SelectSort {
    public static void main(String[] args) {
        int i = 10;
        int[] array = new int[i];
        //生成随机排序
        for (int k = 0; k < i; k++) {
            for (int j = 0; j < i; j++) {
                array[j] = (int) (Math.random() * i * 10);
            }

            //原本数组：
            System.out.printf("第%d \t次数组=》", (k + 1));
            for (int i1 : array) {
                System.out.print(i1 + " \t");
            }

            //开始排序
            selectSort(array);

            //输出
            System.out.printf("，排序后为=》", (k + 1));
            for (int i1 : array) {
                System.out.print(i1 + " \t");
            }
            System.out.println();
        }

    }

    private static void selectSort(int[] array) {
        //定义变量拿来存储最小值和最小值的下标
        int min;
        int minIndex;
        for (int i = 0; i < array.length - 1; i++) {
            //每次进来都认为当前元素最少
            min = array[i];
            minIndex = i;
            for (int j = i + 1; j < array.length; j++) {
                //往后面查找 如果有比当前小的就记录下它的值和下标
                if (min > array[j]) {
                    min = array[j];
                    minIndex = j;
                }
            }
            //如果下标发生了变化就进行换位
            if (minIndex != i) {
                array[minIndex] = array[i];
                array[i] = min;
            }
        }
    }

}
